package com.self;

/**
 * @author 吴宇~
 * @motto 我亦无他，唯手熟尔。
 * @edition jdk1.8
 * @reflection 0-1 喧闹任其喧闹，自由我自为之，我自风情万种，与世无争。
 * @date 2023/04/06/22:04
 */

/**
 * 自己做的，  给破解者一个出其不意的  破解方式。当然自己做不到加密多牛， 但是你想不到这个加密算法是我自己写的。
 */

import com.util.Conversion;

/**
 * 自己可以做几种加密方式  或者在这个类里面  演示各种机密返回时
 * 加密！！asc的话假如说有65536个字符，在65536内做变换，控制在65536内
 * 最牛的是没有解密文件
 */
@SuppressWarnings("all")
public class SelfCreationEncryption {
    /**
     * @param str 第一组加密
     * @return 返回加密字符串
     */
    public static String EncryptionString1(String str) {
        int[] ints = Conversion.StringConversionIntGroup(str);
        int[] ints1 = new int[ints.length];
        for (int i = 0; i < ints1.length; i++) {
            ints1[i] = 65536 - ints[i];
        }
        String s = Conversion.intGroupConversionString(ints1);
        return s;
    }

    /**
     * @param str 第一组解密
     * @return 返回解密字符串
     */
    public static String DecipheringString1(String str) {
        int[] ints = Conversion.StringConversionIntGroup(str);
        int[] ints1 = new int[ints.length];
        for (int i = 0; i < ints1.length; i++) {
            ints1[i] = 65536 - ints[i];
        }
        String s = Conversion.intGroupConversionString(ints1);
        return s;
    }


    /**
     *
     * @param str
     * @return  目前看来不太可能逆啊
     */
    public static String EncryptionString2(String str) {
        int[] ints = Conversion.StringConversionIntGroup(str);
        int[] ints1 = new int[ints.length];
        for (int i = 0; i < ints1.length; i++) {
            if (ints1[i] > 32768) {
                ints1[i] = ints1[i] - (65536 - ints1[i]);
            } else {
                ints1[i] = 2 * ints1[i];
            }
        }
        String s = Conversion.intGroupConversionString(ints1);
        return s;
    }

    public static String DecipheringString2(String str) {
        return "a";

    }
}

